package com.wangsai.framework.supersecurity.satoken;

import cn.dev33.satoken.stp.StpUtil;
import com.wangsai.framework.supersecurity.client.UserStore;

/**
 * @author Mr.Wang
 * @description
 * @date 2021-08-14 17:26
 */
public abstract class AbstractSaUserStore implements UserStore {

    /**
     * 获取用户的存储key
     *
     * @return
     */
    abstract String getUserKey();

    @Override
    public <T> T get(Class<T> clazz) {
        if (StpUtil.isLogin()) {
            return (T) StpUtil.getSession().getModel(getUserKey(), clazz);
        }
        return null;
    }

    @Override
    public void save(Object user) {
        if (StpUtil.isLogin()) {
            StpUtil.getSession().set(getUserKey(), user);
        }
    }
}